home *** CD-ROM | disk | FTP | other *** search
/ Stanley's Sticker Stories / Stanley's Sticker Stories (1997)(Edmark)[Mac-PC].iso / pc / edinst / video / setup.mst < prev    next >
Text File  |  1996-04-19  |  11KB  |  320 lines

  1. '**************************************************************************
  2. '*                  VfW 1.1 Runtime Setup
  3. '**************************************************************************
  4. '$INCLUDE 'setupapi.inc'
  5. '$INCLUDE 'mscpydis.inc'    ''System
  6. '$INCLUDE 'msdetect.inc'    ''Detects Avalilable Disk Space
  7.  
  8. ''Dialog ID's
  9. CONST WELCOME       = 100
  10. CONST ASKQUIT       = 200
  11. CONST EXITFAILURE   = 400
  12. CONST EXITQUIT      = 600
  13. CONST EXITSUCCESS   = 700
  14. CONST APPHELP       = 900
  15. CONST CHECK         = 2500
  16. CONST SMALLWIN      = 2200
  17. CONST RESTART       = 2600
  18. CONST RESTARTII     = 2700
  19.  
  20. ''Bitmap ID
  21. CONST LOGO = 1
  22.  
  23. GLOBAL SizeReq&  '' Total Disk Size required for installation
  24.  
  25. ''File Types
  26. GLOBAL WinDir$
  27. GLOBAL WinSysDir$
  28. GLOBAL WinSys32Dir$
  29. GLOBAL WINDRIVE$    ''Windows Drive Letter.
  30. GLOBAL CHECKSTATES$
  31. GLOBAL MinorVer%
  32. GLOBAL OnNT$
  33.  
  34. DECLARE SUB Install
  35. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  36. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  37. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  38. DECLARE SUB Reboot LIB "iniupd.dll"
  39. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  40.  
  41. INIT:
  42.   
  43.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  44.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  45.     
  46.     WIN32ENABLED% = 0
  47.     MajorVer% = GetWindowsMajorVersion()
  48.     MinorVer% = GetWindowsMinorVersion()
  49.     Processor% = GetProcessorType()
  50.     WinDir$ = GetWindowsDir()
  51.     DEST$ = GetWindowsDir()
  52.     WinSysDir$ = GetWindowsSysDir()
  53.     WinSys32Dir$ = WinDir$ + "system32"
  54.  
  55.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  56.     i% = DoMsgBox("Microsoft Windows version 3.10 or greater is required for this software.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  57.     END
  58.     END IF
  59.  
  60.     'Prevents installation on 286
  61.     IF Processor% < 3 THEN
  62.     i% = DoMsgBox("Video for Windows requires a 386 or greater processor or emulator.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  63.     END
  64.     END IF
  65.  
  66.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  67.     IF OnWindowsNT() THEN
  68.       OnNT$ = "TRUE"
  69.       WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  70.       IF WowVersion$ = "" THEN
  71.          i% = DoMsgBox("Video for Windows does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  72.          END
  73.       END IF
  74.     END IF
  75.  
  76.     SetBitmap CUIDLL$, LOGO
  77.     SetTitle "Video for Windows 1.1 Runtime"
  78.  
  79.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  80.     IF szInf$ = "" THEN
  81.        szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  82.     END IF
  83.     ReadInfFile szInf$
  84.  
  85.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  86.  
  87. WELCOME:
  88.     '' tlf - 04/17/96
  89.     ''sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  90.     ''IF sz$ = "CONTINUE" THEN
  91.     ''   UIPop 1
  92.      ''ELSE
  93.     ''GOSUB ASKQUIT
  94.     ''GOTO WELCOME
  95.     ''END IF
  96.     '' tlf - 04/17/96
  97.  
  98. ''Prepare Copy list and check size
  99.  
  100.     ClearCopyList
  101.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  102.  
  103. '' Remove DCISVGA file
  104.     AddSectionFilesToCopyList "remove", SrcDir$, WinSysDir$
  105.  
  106. ''  Runtime files (on Windows disk)
  107. ''  Do not install OLE or MPlayer if on next release of NT or Windows
  108.  
  109.     IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN            'These files not necessary on Windows NT
  110.     AddSectionFilesToCopyList "MPlayer", SrcDir$, WinDir$
  111.     AddSectionFilesToCopyList "OLE2", SrcDir$, WinSysDir$
  112.     END IF
  113.     AddSectionFilesToCopyList "VfW Runtime", SrcDir$, WinSysDir$
  114.     AddSectionFilesToCopyList "ACM Drivers", SrcDir$, WinSysDir$
  115.     AddSectionFilesToCopyList "AVICodecs", SrcDir$, WinSysDir$
  116.     IF OnNT$ = "TRUE" THEN
  117.     AddSectionFilesToCopyList "NT MSVideo", SrcDir$, WinSys32Dir$
  118.     ENDIF
  119. ''*************************************************************************************************************************
  120. ''*************************************************************************************************************************
  121. ''To add a DCI provider, please un-comment the AddSectionFilesToCopyList,
  122. ''and add a "DCI Provider" section with to the SETUP.INF file.
  123. ''
  124. ''    AddSectionFilesToCopyList "DCI Provider", SrcDir$, WinSysDir$
  125. ''*************************************************************************************************************************
  126. ''*************************************************************************************************************************
  127.  
  128. ''  Check windrive diskspace
  129.     SizeReq& = GetCopyListCost ("","", "")
  130.     IF SizeReq& <> 0 THEN
  131.     GOSUB SMALLWIN
  132.     END
  133.     END IF
  134.  
  135. Install
  136.  
  137. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  138. '' else, it gives the user the choice
  139.     RESTRT% = RestartListEmpty ()
  140.     Exe$ = DEST$ + "\_msrstrt.exe"
  141.     Batch$ = DEST$ + "\_mssetup.bat"
  142.     empty$ = ""
  143.  
  144. '' tlf - 04/17/96
  145.     IF RESTRT% = 0 THEN
  146.         MyBatch$ = DEST$ + "\_setup.bat"
  147.         CopyFile Batch$, MyBatch$, cmoNone, 0
  148.     ENDIF
  149.  
  150.  
  151. RESTART:
  152.     ''IF RESTRT% = 0 THEN
  153.        ''sz$ = UIStartDlg(CUIDLL$, RESTART, "FInfo0DlgProc", 0, "")
  154.        ''IF sz$ = "REACTIVATE" THEN
  155.       ''GOTO RESTART
  156.        ''ENDIF
  157.        ''I% = ExitExecRestart ()
  158.        ''RemoveFile Exe$, cmoForce
  159.        ''RemoveFile Batch$, cmoForce
  160.        ''END
  161.     ''ELSE
  162.       '' sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  163.        ''IF sz$ = "CONTINUE" THEN
  164.       ''I% = ExitWindowsExec (Exe$, empty$)
  165.       ''IF I% = 0 THEN
  166.         '' GOTO RESTART
  167.       ''ELSE
  168.        ''  END
  169.      ''ENDIF
  170.        ''ELSEIF sz$ = "EXIT" THEN
  171.       ''UIPopAll
  172.       ''END
  173.        ''ELSEIF sz$ = "REACTIVATE" THEN
  174.       ''GOTO RESTART
  175.        ''ELSE
  176.       ''UIPop 1
  177.        ''END IF
  178.     ''END IF
  179.  
  180.  
  181.  
  182. QUIT:
  183.     ON ERROR GOTO ERRQUIT
  184.     i% = DoesFileExist( GetWindowsDir() + "_MSSETUP.BAT", femExists )
  185.     IF i% = 1 THEN
  186.         CopyFile GetWindowsDir() + "_MSSETUP.BAT", GetWindowsDir() + "_SETUP.BAT", cmoNone, 1
  187.     END IF
  188.  
  189.     END '' tlf - 04/17/96
  190.  
  191.     ''IF ERR = 0 THEN
  192.     ''dlg% = EXITSUCCESS
  193.     ''ELSEIF ERR = STFQUIT THEN
  194.     ''dlg% = EXITQUIT
  195.     ''ELSE
  196.     ''dlg% = EXITFAILURE
  197.     ''END IF
  198. QUITL1:
  199.     ''sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  200.     ''IF sz$ = "REACTIVATE" THEN
  201.     ''GOTO QUITL1
  202.     ''END IF
  203.     ''UIPop 1
  204.     ''END
  205.  
  206. ERRQUIT:
  207.     i% = DoMsgBox("An installation problem occured, call the product support service", "Setup Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  208.     END
  209.  
  210.  
  211. ASKQUIT:
  212.     '' tlf - 04/17/96
  213.     ''sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  214.  
  215.     ''IF sz$ = "EXIT" THEN
  216.     ''UIPopAll
  217. ''        ERROR STFQUIT  ''this was already commented out - 04/17/96''
  218.     ''END
  219.     ''ELSEIF sz$ = "REACTIVATE" THEN
  220.     ''GOTO ASKQUIT
  221.     ''ELSE
  222.     ''UIPop 1
  223.     ''END IF
  224.     RETURN
  225.  
  226. SMALLWIN:
  227.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  228.     IF sz$ = "REACTIVATE" THEN
  229.     GOTO SMALLWIN
  230.     END IF
  231.     UIPop 1
  232.     RETURN
  233.  
  234.  
  235.  
  236. '**
  237. '** Purpose:
  238. '**     Performs all installation operations.
  239. '** Arguments:
  240. '**     none.
  241. '** Returns:
  242. '**     none.
  243. '*************************************************************************
  244. SUB Install STATIC
  245.  
  246.     SetRestartDir WinDir$
  247.     CopyFilesInCopyList
  248.  
  249. ''Updating WIN.INI and SYSTEM.INI
  250. ''Only update SYSTEM.INI  on NT or next version of Windows for other codecs
  251.  
  252. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  253.     IF VflatdPresent() = 0 THEN
  254.        CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  255.     END IF
  256. END IF
  257.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  258.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  259.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  260.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  261.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  262.     I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  263.     IF I% = 0  THEN
  264.        CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  265.     END IF
  266.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  267.     CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  268.     CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  269.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  270.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  271.     CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  272.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  273.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  274.     CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  275.  
  276. ''*************************************************************************************************************************
  277. ''*************************************************************************************************************************
  278. ''To add a DCI provider, please un-comment the UDH line, and un-comment and replace the    <provider> with your own file name
  279. ''
  280. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "DCI", "<provider>", cmoOverwrite
  281. ''  CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "vids.draw", "udh.dll", cmoOverwrite
  282. ''*************************************************************************************************************************
  283. ''*************************************************************************************************************************
  284.  
  285. ''Do not register components not installed with Video for Windows on NT or next version of Windows.
  286. IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  287.     Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  288.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  289.     Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  290.  
  291. '' Mplayer
  292.     CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  293.  
  294. END IF    ''NT and next version of Windows installation stop here.
  295.  
  296.     Run ("profdisp.exe")   
  297. END SUB
  298.  
  299. '**
  300. '** Purpose:
  301. '**     Appends a file name to the end of a directory path,
  302. '**     inserting a backslash character as needed.
  303. '** Arguments:
  304. '**     szDir$  - full directory path (with optional ending "\")
  305. '**     szFile$ - filename to append to directory
  306. '** Returns:
  307. '**     Resulting fully qualified path name.
  308. '*************************************************************************
  309. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  310.     IF szDir$ = "" THEN
  311.     MakePath = szFile$
  312.     ELSEIF szFile$ = "" THEN
  313.     MakePath = szDir$
  314.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  315.     MakePath = szDir$ + szFile$
  316.     ELSE
  317.     MakePath = szDir$ + "\" + szFile$
  318.     END IF
  319. END FUNCTION
  320.